package cn.iocoder.yudao.module.jky.controller.admin.order.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 订单 Excel 导出 Request VO，参数和 OrderPageReqVO 是一致的")
@Data
public class OrderExportReqVO {

    @Schema(description = "用户ID", example = "22481")
    private Integer userId;

    @Schema(description = "订单号")
    private String orderNum;

    @Schema(description = "订单名称")
    private String title;

    @Schema(description = "总价 精确到分", example = "3638")
    private Integer allprice;

    @Schema(description = "赠送积分")
    private Integer givePoint;

    @Schema(description = "分成")
    private Double proffer;

    @Schema(description = "1=未结算2=结算", example = "1")
    private Byte profferStatus;

    @Schema(description = "抵扣积分")
    private Integer deductionPoint;

    @Schema(description = "省份")
    private String province;

    @Schema(description = "城市")
    private String city;

    @Schema(description = "县/区域")
    private String county;

    @Schema(description = "收货地址")
    private String address;

    @Schema(description = "收件人单位名称")
    private String company;

    @Schema(description = "收件人")
    private String consignee;

    @Schema(description = "联系电话")
    private String contactNumber;

    @Schema(description = "邮政编码")
    private String postcode;

    @Schema(description = "快递公司")
    private String logistics;

    @Schema(description = "快递单号")
    private String expressNumber;

    @Schema(description = "备注", example = "你说的对")
    private String remark;

    @Schema(description = "订单状态 1未支付 2已支付 3已发货 4已确认收货、未评价 5已确认收货、已评价 6申请退款 7退款成功 8拒绝退款", example = "1")
    private Integer status;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "支付时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] payTime;

    @Schema(description = "发货时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] deliverTime;

    @Schema(description = "确认收货时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] finishTime;

    @Schema(description = "评论时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] commentTime;

    @Schema(description = "申请退款时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] refundTime;

    @Schema(description = "退款成功时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] refundSuccessTime;

    @Schema(description = "拒绝退款时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] refundFailTime;

    @Schema(description = "支付方式 alipay支付宝 wxpay微信支付 balance余额支付 point积分抵用")
    private String payMethod;

    @Schema(description = "抵用积分数")
    private Integer point;

    @Schema(description = "消费码")
    private String consumerCode;

    @Schema(description = "申请退款理由", example = "不对")
    private String drawbackReason;

    @Schema(description = "申请退款凭证图片")
    private String drawbackImg;

    @Schema(description = "拒绝退款理由", example = "不对")
    private String drawbackRefuseReason;

    @Schema(description = "退款快递单号")
    private String refundExpressNumber;

    @Schema(description = "是否延迟收货 Y是 N否")
    private String isDelay;

    @Schema(description = "取消订单时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] cancelTime;

    @Schema(description = "类型1自营商城3寄售商城", example = "1")
    private Integer type;

    @Schema(description = "供应商组ID 0代表无", example = "26686")
    private Integer supplierId;

}
